<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title>Pesquisa Binária em Array em Javascript</title>

<script type="text/javascript">
    
function pesquisa_binaria() {
    
    var form = document.getElementById('form');
    var elemento = form.numero.value;
    
    if (elemento.match(/^[0-9]+$/)) {
        
        num = parseInt(elemento);
        var vetNum = [8, 10, 20, 21, 25, 30, 35, 50, 60, 80];
        var primeiro = 0;
        var meio = 0;
        var ultimo = vetNum.length - 1;
        var posicao = 0;
        var achou = false;
        
        while (primeiro <= ultimo && achou == false) {
            meio = parseInt((primeiro + ultimo) / 2);
            
            if (elemento == vetNum[meio]) {
            
                achou = true;
                posicao = meio + 1;
            
            } else if (elemento < vetNum[meio]) {
            
                ultimo = meio - 1;
            } else {
                primeiro = meio + 1;
            }
      }
      
      if (achou == true) {
        alert("Número encontrado na " + posicao + "ª posição do vetor.");
      } else {
        alert("Número não encontrado");
      }
    } else {
      alert("Digite um número inteiro válido");
    }
}
  //-->
</script>
</head>
  
<body style="font-family: verdana, arial, sans-serif;">
    
<form id="form" action="" method="get">
    
	<h3>Pesquisa Binária em um Array:</h3>
	<h4>Array: [8, 10, 20, 21, 25, 30, 35, 50, 60, 80];</h4>
	<p><label for="numero">Digite o número para saber a posição: </label><br />
	<input type="text" id="numero" name="numero" value="" /></p>
	<input type="button" value="Calcula" onclick="return pesquisa_binaria();" />

</form>
</body>
</html>